package hero

import (
	"github.com/hajimehoshi/ebiten/v2"
)

// 状态
const (
	Idle   = 0 // 空闲
	Attack = 1 // 攻击
	Run    = 2 // 跑
	Walk   = 3 // 行走
	Sit    = 4 // 坐
)

// 方向
const (
	Down  = 0
	Left  = 1
	Right = 2
	UP    = 3
)

type Mod_Hero struct {
	width        int
	height       int
	pos_x, pos_y float64       // 位置
	body         *ebiten.Image // 本体
	hat          *ebiten.Image // 帽子
	jacket       *ebiten.Image // 上衣
	trousers     *ebiten.Image // 裤子
	cloak        *ebiten.Image // 披风
	shoes        *ebiten.Image // 鞋子
	weapon       *ebiten.Image // 武器
	status       int           // 状态
	direction    int           // 朝向
	ticker       int           // 滴答
	stepth       int           // 第几张图
}

func New() *Mod_Hero {
	// img, _, e := ebitenutil.NewImageFromFile(img_path)
	// if e != nil {
	// 	log.Fatal(errors.Wrap(e, "new.mod_player"))
	// }

	// imgs := map[int][]*ebiten.Image{}
	// w, h := 31, 43
	// for i := 0; i < 3; i++ {
	// 	imgs[i] = []*ebiten.Image{
	// 		img.SubImage(image.Rect(i*w, i*h, (i+1)*w, (i+1)*h)).(*ebiten.Image),
	// 		img.SubImage(image.Rect((i+1)*w, i*h, (i+2)*w, (i+1)*h)).(*ebiten.Image),
	// 		img.SubImage(image.Rect((i+2)*w, i*h, (i+3)*w, (i+1)*h)).(*ebiten.Image),
	// 	}
	// }

	return &Mod_Hero{}
}

func (this *Mod_Hero) Draw(screen *ebiten.Image) {
	screen.DrawImage(this.body, &ebiten.DrawImageOptions{})
}

func (this *Mod_Hero) Update() error {
	this.ticker++

	return nil
}

func (this *Mod_Hero) Layout(outsideWidth, outsideHeight int) (int, int) {
	return this.width, this.height
}
